let url = ''
// 区分开发/生产环境，替换为若依微服务网关地址
if (process.env.NODE_ENV === 'development') {
  console.log('开发环境')
  url = 'http://localhost:8080' // 若依本地网关（需与后端一致）
} else {
  console.log('生产环境')
  url = "http://your-production-gateway.com" // 生产环境网关
}
export const baseUrl = url;

// 白名单：若依登录、验证码等接口不需要 token
let whiteArr = ['/auth/login', '/captchaImage', '/sys/sms/send']; 

export function http(url, data, method = 'GET') {
  // 判断是否为白名单接口，不需要带 token
  const needToken = !whiteArr.some(whiteUrl => url.includes(whiteUrl));
  
  return new Promise((resolve, reject) => {
    uni.request({
      url: baseUrl + url,
      data,
      header: {
        'content-type': 'application/json', // 若依接口建议用 JSON 格式
        // 白名单接口跳过 token，其他接口携带
        'Authorization': needToken ? ('Bearer ' + (uni.getStorageSync('token') || '')) : '' 
      },
      method,
      success: (res) => {
		  if (res.statusCode !== 200) {
		            // HTTP状态码错误（如404、500）
		            const error = new Error(`接口请求失败: ${res.statusCode}`);
		            reject(error);
		            return;
		          }
		  
		          const { code, data, msg } = res.data;
		          if (code === 200) {
		            resolve(data); // 若依成功标识：code=200
		          } else if (code === 401) {
		            // 401登录过期
		            uni.removeStorageSync('token');
		            uni.removeStorageSync('userInfo');
		            uni.showToast({ title: '登录已过期', icon: 'none' });
		            setTimeout(() => {
		              uni.navigateTo({ url: '/pages/login/index' });
		            }, 800);
		            reject(new Error('登录过期')); // 传递错误信息
		          } else {
		            // 业务错误（如账号密码错误）
		            const error = new Error(msg || '操作失败');
		            reject(error);
		          }
       
      },
      fail: (err) => {
        uni.showToast({ title: '服务器异常', icon: 'none' });
        reject(err);
      }
    });
  });
}